实体@

概述

新实体(A公司)的创建条目日志

实体=A公司 
组织=A组织 
角色=A公司 Admin 
角色=A公司 User 
用户=AA/AA 
用户=AB/AB
日历=A公司 日历                                       
元素=A公司 会计科目 
会计科目 # 55 
会计模式=A公司 UN/35 Yuan Renminbi  
会计科目表编码=组织 
会计科目表编码=产品 
会计科目表编码=会计科目 
会计科目表编码=业务伙伴 
---- 
营销活动=标准数据 
销售区域=标准数据 
作业=标准数据 
业务伙伴分组=标准数据 
业务伙伴=标准数据 
商品类别=标准数据 
税目=Standard 
商品=标准数据 
销售代表=AB 
销售代表=AA 
项目=标准数据 
~~现金簿=标准数据~~

\* 所有“标准数据”都来自与message词条“Standard” *\

\* 以下为MSetup.java的创建记录 *\

   *  Create Client Info.
   *  - Client,       (A公司,公司信息,序列号 MSequence.checkClientSequences,注1)
   *  - Trees,        (A公司 产品,A公司......其他维度)
   *  - Org,          (A组织 )
   *  - Role,         (A公司 Admin ,A公司 User )
   *  - User,         (AA/AA,AB/AB)
   *  - User_Role     (分配admin角色到AA,User角色到AB)

   *  Create Accounting elements.
   *  - Calendar                               (日历=A公司 日历   【需本地化期间名称,默认是MMM-yy,done】)
   *  - Account Element                  (A公司 会计科目)
   *  - Account Values                     (科目值为初始化的COA文件值)
   *  - Accounting Schema              (A公司 UN/35 Yuan Renminbi  【英文,看起来有点不爽,注2】)
   *  - AccountingSchema Element (会计模式的维度,按初始化维度的选择)
   *  - Default Accounts                   (设置会计模式的缺省科目)
    //  GL Categories                        (共12个类别 【代码写死英文,不爽,需要本地化,注3,done】)
    //  Base DocumentTypes            (共47个单据 【代码写死英文,不爽,需要本地化,本地化done】)

   *  Create Default main entities.
   *  - Dimensions & BPGroup, Prod Category
   *  - Location, Locator, Warehouse
   *  - PriceList
   *  - ~~Cashbook~~, PaymentTerm
    //  Create Marketing Channel/Campaign ( =Standard )     (missing c_Campaign_trl)
    //  Create Sales Region ( =Standard )                                  (missing c_salesregion_trl)
    //  Create Activity ( =Standard )                                           (missing c_activity_trl)
    //  Create BP Group( =Standard )
    //  Create BPartner ( =Standard )
    //  Location for Standard BP ( =. )
    //  Create Product Category ( =Standard )
    //  UOM (= EA)
    //  TaxCategory ( =Standard )
    //  Tax ( =Standard,0税率 )  (英文,代码写死了,应该是 tax.setName(defaultName))
    //  Create Product( =Standard )
    //  Location (组织的地址 =. )
    //  Warehouse  ( =Standard )
    //  Locator  ( =Standard )
    //  PriceList ( =Standard )        (需要创建一个价格表模式明细,否则无法自动生成价格)
    //  PriceList Version ( =mm/dd/yyyy )
    //  Sales Rep for Client-Admin and Location (BP = AA & isSalesRep)
    //  Sales Rep for Client-User and Location    (BP = AB & isSalesRep)
    //  Payment Term ( =Immediate )               (missing c_PaymentTerm_trl)
    //  Project Cycle ( =Standard )
    //  Project ( =Standard )
    //  ~~CashBook~~

   *  Create Print Documents (新实体将新建9个打印格式并填入打印格式配置,注4)


注1:新建序列号
序列号的新建分2步(表序列号+单据序列号=159+37=196个)
1. 创建实体中需要用到序列号的表的seqence,序列号名称为 ”DocumentNo_表名“:159个
使用MSequence.checkClientSequences( )方法

SELECT TableName FROM AD_Table t 
WHERE IsActive='Y' AND IsView='N'
AND AD_Table_ID IN                                                /*Get all Tables with DocumentNo or Value */
(SELECT AD_Table_ID FROM AD_Column WHERE ColumnName = 'DocumentNo' OR ColumnName = 'Value')
AND 'DocumentNo_' || TableName  IN                    /*sequence created, "NOT IN" if initial setup */
(SELECT Name FROM AD_Sequence s WHERE s.AD_Client_ID=11);

2. 创建单据使用的序列号native sequences,序列号名称为单据名称:47-10=37个
初始化Msetup.java新建47个单据,其中使用createDocType( ) 创建42个单据(但是只有37个序列号)
使用org.compiere.process.DocumentTypeVerify创建剩余的5个单据,无定序列号

SELECT rl.Value, rl.Name FROM AD_Ref_List rl      /*查找所有的基础单据类型,现有32个 */
WHERE rl.AD_Reference_ID=183 
AND rl.IsActive='Y' 
AND NOT EXISTS 
(SELECT * FROM C_DocType dt WHERE dt.AD_Client_ID=? AND rl.Value=dt.DocBaseType)

3. (总之,单据类型代码很乱,他有32级基础单据类型,Msetup.java只创建了27个基础单据而产生42个单据,最后由校验创建5个单据,一口鲜血)理想流程。系统存放标准单据,可以定义单据的起始号码,初始化取出所有标准单据,数组循环新建。

4. 数据汇总
单据序号=159+37=196个(42个单据-5个序号=37)
基础单据=32个 (引用id=183)
单据类型=47个(代码写死42个,校验5个)

注2:新实体的账套名称
StringBuilder msgset = new StringBuilder()
.append(client.getName())
.append(" ")
.append(getGAAP())
.append("/")
.append(get_ColumnCount())    (po的列数量,取这个值有什么用???)
.append(" ")
.append(currency.getName());


注3:总账类别 (已本地化脚本)
//  GL Categories
createGLCategory("Standard", MGLCategory.CATEGORYTYPE_Manual, true);
int GL_None = createGLCategory("None", MGLCategory.CATEGORYTYPE_Document, false);
int GL_GL = createGLCategory("Manual", MGLCategory.CATEGORYTYPE_Manual, false);
int GL_ARI = createGLCategory("AR Invoice", MGLCategory.CATEGORYTYPE_Document, false);
int GL_ARR = createGLCategory("AR Receipt", MGLCategory.CATEGORYTYPE_Document, false);
int GL_MM = createGLCategory("Material Management", MGLCategory.CATEGORYTYPE_Document, false);
int GL_API = createGLCategory("AP Invoice", MGLCategory.CATEGORYTYPE_Document, false);
int GL_APP = createGLCategory("AP Payment", MGLCategory.CATEGORYTYPE_Document, false);
int GL_CASH = createGLCategory("Cash/Payments", MGLCategory.CATEGORYTYPE_Document, false);
int GL_Manufacturing = createGLCategory("Manufacturing", MGLCategory.CATEGORYTYPE_Document, false);
int GL_Distribution = createGLCategory("Distribution", MGLCategory.CATEGORYTYPE_Document, false);
int GL_Payroll = createGLCategory("Payroll", MGLCategory.CATEGORYTYPE_Document, false);

注4:无单据号控制的单据
( AP Invoice \AP CreditMemo\AR Receipt\AP Payment\MM Receipt 这5个在Msetup.java代码无序列定义)
(AR Pro Forma Invoice\Asset Addition\Asset Depreciation\Asset Disposal\GL Document由校验生成 )
单据序列号编码方案:
采购  1
销售  2
入库  3
出库  4
配送  49
入票  5
出票  6
收款  70
付款  71
银行  78
总账  8
制造  91
资产  92
人事  93
无  99

注5:新实体的打印格式 PrintUtil.setupPrintForm( )
==订单
Standard Order Header                       Order_Header ** 1000005 ** - 复制
Standard Order Line&Tax                     Order_LineTax ** 1000005 ** - 复制
==发票
Standard Invoice Header                     Invoice_Header ** 1000005 ** - 复制
Standard Invoice Line&Tax Lines             Invoice_LineTax ** 1000005 ** - 复制
==发货
Standard Shipment Header                    InOut_Header ** 1000005 ** - 复制
Standard Shipment Lines                     InOut_Line ** 1000005 ** - 复制
==支票
Standard Check with Remittance Info         PaySelection_Check ** 1000005 ** - 复制
Standard Check/Remittance Lines             PaySelection_Remittance_Lines ** 1000005 ** - 复制
==汇款
Standard Remittance Header                  PaySelection_Remittance ** 1000005 ** - 复制

其中”回款单据“现在无用,主要是为了填入【打印格式设置printform】的缺省记录。
支票模板只有新建银行账户,定义了银行单据才可用,具体参考[报表-流程](http://idempiere_guide_sm.mydoc.io/?t=134397#widget_6173909)

会计账户

还是有英文???